home *** CD-ROM | disk | FTP | other *** search
/ Ham Radio 2000 #1 / Ham Radio 2000.iso / ham2000 / packet / ms_exe / noise.asc < prev    next >
Encoding:
Text File  |  1990-06-27  |  6.8 KB  |  250 lines

  1. 'NOISE.BAS
  2. 'This program calculates the median man-made noise level for
  3. 'three noise grade environments: Business, Suburban, and Rural.
  4. 'The values are based on the formulas contained in Report 258-4
  5. 'Man-Made Radio Noise issued by the CCIR, Geneva 1982 as part of
  6. 'Volume VI Propagation in Ionized Media.
  7. 'Also calculated are the upper and lower decile levels of
  8. 'noise power variability within a one hour period.
  9. 'The upper decile level is not exceeded 90% of the time. The lower
  10. 'decile level is exceeded 90% of the time.
  11. '
  12. 'The standard deviation of location variability is also given.
  13. '
  14. 'An upper and lower decile value including both time
  15. 'and location variability is calculated. For simplicity,
  16. 'a simple Gaussian distribution is assumed for the location
  17. 'variability.
  18. '
  19. 'Program last revised June 27, 1990
  20. '
  21. GOSUB TITLE
  22.  
  23. DEF FNLGT (X) = LOG(X) / LOG(10)
  24.  
  25. MENU:
  26. CLS
  27.      PRINT "╔═══════════════════════════════════════════════════════════════╗"
  28.      PRINT "║                 MAN-MADE NOISE - MODULE 11                    ║"
  29.      PRINT "╚═══════════════════════════════════════════════════════════════╝"
  30.  
  31.  
  32.  
  33. PRINT
  34. PRINT
  35.  
  36. FREQENTRY:
  37. INPUT "ENTER FREQUENCY (MHz): "; FREQ
  38. PRINT
  39. IF FREQ < 20 OR FREQ > 102 THEN PRINT "FREQUENCY MUST BE BETWEEN 20 AND 102 MHz ": GOTO FREQENTRY
  40.  
  41. PRINT "    NOISE GRADE"
  42. PRINT "--------------------"
  43. PRINT "1) BUSINESS AREA"
  44. PRINT "2) RESIDENTIAL AREA"
  45. PRINT "3) RURAL AREA"
  46. INPUT "                    ENTER CHOICE 1,2 OR 3: "; GRADE%
  47.  
  48. BW = 1: 'initialize bandwidth to 1 Hz.
  49. GOSUB BANDWIDTH
  50.  
  51. 'choose noise calculation routine based on noise grade
  52. GRADE:
  53.  
  54. SELECT CASE GRADE%
  55.  
  56. CASE 1
  57.         GRADE$ = "BUSINESS"
  58.         GOSUB BUSINESS
  59. CASE 2
  60.         GRADE$ = "RESIDENTIAL"
  61.         GOSUB RESIDENTIAL
  62. CASE 3
  63.         GRADE$ = "RURAL"
  64.         GOSUB RURAL
  65. CASE ELSE
  66.         GOTO MENU
  67.  
  68. END SELECT
  69.  
  70.  
  71.  
  72. OUTPUT1:
  73.     
  74.      CLS
  75.      PRINT "╔═══════════════════════════════════════════════════════════════╗"
  76.      PRINT "║     NOISE - MAN-MADE NOISE LEVEL PREDICTION - MODULE 11       ║"
  77.      PRINT "╚═══════════════════════════════════════════════════════════════╝"
  78. LOCATE 4, 10
  79. PRINT USING "NOISE GRADE: & "; GRADE$
  80. LOCATE 5, 10
  81. PRINT USING "FREQUENCY: ###.# MHz"; FREQ
  82. LOCATE 7, 10
  83. PRINT USING "MEDIAN MAN-MADE NOISE LEVEL:    +###.# dBm"; MEDIAN
  84. LOCATE 8, 10
  85. PRINT USING "   (in a & bandwidth)"; BW$
  86. LOCATE 10, 10
  87. PRINT USING "UPPER DECILE NOISE LEVEL:       +###.# dBm"; UPPERTIME
  88. LOCATE 11, 10
  89. PRINT "(for time variation of noise)"
  90. LOCATE 13, 10
  91. PRINT USING "LOWER DECILE NOISE LEVEL:       +###.# dBm"; LOWERTIME
  92. LOCATE 15, 10
  93. PRINT USING "LOCATION VARIABILITY SIGMA:       ##.# dB"; SIGMA
  94. LOCATE 17, 10
  95. PRINT USING "UPPER DECILE NOISE LEVEL:       +###.# dBm"; UPPER
  96. LOCATE 18, 10
  97. PRINT "(including time and location"
  98. LOCATE 19, 10
  99. PRINT " variability)"
  100. LOCATE 21, 10
  101. PRINT USING "LOWER DECILE NOISE LEVEL:       +###.# dBm"; LOWER
  102. LOCATE 23, 10
  103. INPUT "CALCULATE FOR ANOTHER BANDWIDTH (Y/N)? "; ANSWER$
  104. IF LEFT$(ANSWER$, 1) = "Y" OR LEFT$(ANSWER$, 1) = "y" THEN GOTO INPUTBW
  105. LOCATE 24, 10
  106. INPUT "NEW CALCULATION (Y/N)? "; ANSWER$
  107. IF LEFT$(ANSWER$, 1) = "Y" OR LEFT$(ANSWER$, 1) = "y" THEN GOTO MENU
  108.  
  109. ENDING:
  110. LOCATE 25, 30
  111. PRINT "≡≡≡ PROGRAM COMPLETED ≡≡≡"
  112. END
  113.  
  114.  
  115.  
  116. BUSINESS:
  117.  
  118. MEDIAN = -97.2 - 27.7 * FNLGT(FREQ) + 10 * FNLGT(BW)
  119. SELECT CASE FREQ
  120. CASE IS >= 20, IS <= 48
  121. DU = 10.5 + .093 * (FREQ - 20)
  122. DL = 7.6 + .0179 * (FREQ - 20)
  123. UPPERTIME = MEDIAN + DU
  124. LOWERTIME = MEDIAN - DL
  125. SIGMA = 4.93 + .079 * (FREQ - 20)
  126. SIGMATIME = (1 / 1.28) * SQR((DU ^ 2 + DL ^ 2) / 2)
  127. SIGMATOTAL = SQR(SIGMATIME ^ 2 + SIGMA ^ 2)
  128. UPPER = MEDIAN + 1.64 * SIGMATOTAL
  129. LOWER = MEDIAN - 1.64 * SIGMATOTAL
  130. CASE IS > 48, IS <= 102
  131. DU = 13.1 - .022 * (FREQ - 48)
  132. DL = 8.1 - .44 * (FREQ - 48)
  133. UPPERTIME = MEDIAN + DU
  134. LOWERTIME = MEDIAN - DL
  135. SIGMA = 7.13 + .03 * (FREQ - 48)
  136. SIGMATIME = (1 / 1.28) * SQR((DU ^ 2 + DL ^ 2) / 2)
  137. SIGMATOTAL = SQR(SIGMATIME ^ 2 + SIGMA ^ 2)
  138. UPPER = MEDIAN + 1.64 * SIGMATOTAL
  139. LOWER = MEDIAN - 1.64 * SIGMATOTAL
  140. CASE ELSE
  141. 'incorrect frequencies should have already been trapped
  142. END SELECT
  143. RETURN
  144.  
  145. RESIDENTIAL:
  146.  
  147. MEDIAN = -101.5 - 27.7 * FNLGT(FREQ) + 10 * FNLGT(BW)
  148. SELECT CASE FREQ
  149. CASE IS >= 20, IS <= 48
  150. DU = 10.6 + .061 * (FREQ - 20)
  151. DL = 6.5 + .021 * (FREQ - 20)
  152. UPPERTIME = MEDIAN + DU
  153. LOWERTIME = MEDIAN - DL
  154. SIGMA = 4.65 - .024 * (FREQ - 20)
  155. SIGMATIME = (1 / 1.28) * SQR((DU ^ 2 + DL ^ 2) / 2)
  156. SIGMATOTAL = SQR(SIGMATIME ^ 2 + SIGMA ^ 2)
  157. UPPER = MEDIAN + 1.64 * SIGMATOTAL
  158. LOWER = MEDIAN - 1.64 * SIGMATOTAL
  159. CASE IS > 48, IS <= 102
  160. DU = 12.3 - .0037 * (FREQ - 48)
  161. DL = 7.1 - .042 * (FREQ - 48)
  162. UPPERTIME = MEDIAN + DU
  163. LOWERTIME = MEDIAN - DL
  164. SIGMA = 3.98 - .023 * (FREQ - 48)
  165. SIGMATIME = (1 / 1.28) * SQR((DU ^ 2 + DL ^ 2) / 2)
  166. SIGMATOTAL = SQR(SIGMATIME ^ 2 + SIGMA ^ 2)
  167. UPPER = MEDIAN + 1.64 * SIGMATOTAL
  168. LOWER = MEDIAN - 1.64 * SIGMATOTAL
  169. CASE ELSE
  170. 'incorrect frequencies should have already been trapped
  171. END SELECT
  172. RETURN
  173.  
  174.  
  175. RURAL:
  176.  
  177. MEDIAN = -106.8 - 27.7 * FNLGT(FREQ) + 10 * FNLGT(BW)
  178. SELECT CASE FREQ
  179. CASE IS >= 20, IS <= 48
  180. DU = 7.8 + .089 * (FREQ - 20)
  181. DL = 5.5 - .132 * (FREQ - 20)
  182. UPPERTIME = MEDIAN + DU
  183. LOWERTIME = MEDIAN - DL
  184. SIGMA = 4.53 - .046 * (FREQ - 20)
  185. SIGMATIME = (1 / 1.28) * SQR((DU ^ 2 + DL ^ 2) / 2)
  186. SIGMATOTAL = SQR(SIGMATIME ^ 2 + SIGMA ^ 2)
  187. UPPER = MEDIAN + 1.64 * SIGMATOTAL
  188. LOWER = MEDIAN - 1.64 * SIGMATOTAL
  189. CASE IS > 48, IS <= 102
  190. DU = 5.3 + .096 * (FREQ - 48)
  191. DL = 1.8 + .024 * (FREQ - 48)
  192. UPPERTIME = MEDIAN + DU
  193. LOWERTIME = MEDIAN - DL
  194. SIGMA = 3.23 - .0109 * (FREQ - 48)
  195. SIGMATIME = (1 / 1.28) * SQR((DU ^ 2 + DL ^ 2) / 2)
  196. SIGMATOTAL = SQR(SIGMATIME ^ 2 + SIGMA ^ 2)
  197. UPPER = MEDIAN + 1.64 * SIGMATOTAL
  198. LOWER = MEDIAN - 1.64 * SIGMATOTAL
  199. CASE ELSE
  200. 'incorrect frequencies should have already been trapped
  201. END SELECT
  202. RETURN
  203.  
  204. INPUTBW:
  205.      CLS
  206.      PRINT "╔═══════════════════════════════════════════════════════════════╗"
  207.      PRINT "║     NOISE - MAN-MADE NOISE LEVEL PREDICTION - MODULE 11       ║"
  208.      PRINT "╚═══════════════════════════════════════════════════════════════╝"
  209.  
  210. LOCATE 10, 10
  211. INPUT "ENTER NEW BANDWIDTH IN HERTZ: "; BW
  212. GOSUB BANDWIDTH
  213. GOTO GRADE
  214.  
  215. BANDWIDTH:
  216. SELECT CASE BW
  217. CASE IS < 1000
  218.         BW$ = LTRIM$(STR$(BW)) + " Hz"
  219. CASE IS >= 1000, IS < 100000
  220.         BW$ = LTRIM$(STR$(BW / 1000)) + " kHz"
  221. CASE ELSE
  222.         PRINT "WARNING: BANDWIDTH OUT-OF-RANGE"
  223.         'return to BW entry
  224. END SELECT
  225. RETURN
  226.  
  227. TITLE:
  228. 'opening screen for meteor burst programs
  229. CLS
  230.  
  231. LOCATE 5, 25
  232. PRINT "Supplemental Computer Programs"
  233. LOCATE 6, 38
  234. PRINT "to"
  235. LOCATE 7, 27
  236. PRINT "METEOR BURST COMMUNICATION"
  237. LOCATE 9, 38
  238. PRINT "by"
  239. LOCATE 10, 31
  240. PRINT "Jacob Z. Schanker"
  241. LOCATE 14, 24
  242. PRINT "COPYRIGHT 1990 ARTECH HOUSE, INC."
  243. LOCATE 22, 25
  244. PRINT "<< Press any key to continue >>"
  245. WHILE INKEY$ = ""
  246. WEND
  247. CLS
  248. RETURN
  249.  
  250.